﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Areas.Productos.Models;
using Helena.Areas.Campanas.Models;
using Helena.Areas.Categorias.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace Helena.Areas.Ventas.Models
{
    public class DetalleVentaView
    {
        public int ID { get; set; }

        [DisplayName("Activo")]
        public bool Estado { get; set; }

        public int VentaID { get; set; }

        [Required]
        [DisplayName("Seleccione un producto")]
        public int ProductoID { get; set; }

        [DisplayName("Producto")]
        public string NombreProducto { get; set; }

        [DisplayName("Categoria")]
        public int CategoriaID { get; set; }

        [DisplayName("Campaña")]
        public int CampanaID { get; set; }

        [DisplayName("Unidad")]
        public int UnidadID { get; set; }

        [Required]
        [DisplayName("Cantidad")]
        public double Cantidad { get; set; }

        [DisplayName("P.U."), DataType(DataType.Currency)]
        public decimal PrecioU { get; set; }
        
        [DisplayName("Sub Total"), DataType(DataType.Currency)]
        public decimal Subtotal { get; set; }

        [DisplayName("IGV")]
        public decimal Igv_del_Subtotal { get; set; }

        public DetalleVentaView() {Estado= true; }
        public DetalleVentaView(DetalleVenta dv)
        {
            ID = dv.ID;
            Estado = dv.Estado;
            VentaID = dv.VentaID;
            UnidadID = dv.UnidadID;
            ProductoID = dv.ProductoID;
            CategoriaID = dv.CategoriaID;
            NombreProducto = dv.NombreProducto;
            CampanaID = dv.CampanaID;
            Cantidad = dv.Cantidad;
            PrecioU = dv.PrecioU;
            Subtotal = dv.Subtotal;
            Igv_del_Subtotal = dv.Igv_del_Subtotal;
        }

        public DetalleVenta deserializa(InterfazLogicaVenta logica)
        {
            return new DetalleVenta
            {
                ID = this.ID,
                Estado = this.Estado,
                VentaID = this.VentaID,
                ProductoID = this.ProductoID,
                NombreProducto=this.NombreProducto,
                CategoriaID = this.CategoriaID,
                CampanaID = this.CampanaID,
                Cantidad = this.Cantidad,
                PrecioU = this.PrecioU,
                Subtotal = this.Subtotal,
                Igv_del_Subtotal = this.Igv_del_Subtotal
            };
        }

    }
}